package domain;

import java.util.ArrayList;
import java.util.Arrays;
import javax.swing.JOptionPane;

public class SpelerTekenChar implements iSpelerTeken{
	private char teken = 'O';
	private ArrayList<Character> beschikbaar = new ArrayList<Character>(Arrays.asList('A','B','C','D','E','F','G','H','I','J',
			'K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'));
	
	public SpelerTekenChar() {
	}
	
	public SpelerTekenChar(int i) {
		setTeken(beschikbaar.get(i));
	}

	public SpelerTekenChar(char c) {
		setTeken(c);
	}

	public SpelerTekenChar(boolean eigenTeken) {
		if (eigenTeken){
			tekenInstellen() ;
		}else{
			kiesRandomTeken();
		}
	}

	private void kiesRandomTeken() {
		int positie = (int)(Math.random() * beschikbaar.size());
		setTeken(beschikbaar.get(positie));
	}

	@Override
	public Object getTeken() {
		return teken ;
	}
	
	private void setTeken(char c){
		this.teken = c;
	}
	
	private char getTekenChar(){
		return teken;
	}

	@Override
	public Object getBeschibareTekens() {

		beschikbaar.remove(getTekenChar());
		
		char[] tekens = new char[beschikbaar.size()];
		for (int index =0; index < beschikbaar.size(); index++){
			tekens[index] = beschikbaar.get(index);
		}
		
		return tekens;
	}
	
	private void tekenInstellen() {
		char gekozenTeken = JOptionPane.showInputDialog("Vul uw Teken in: ")
				.charAt(0);
		if (gekozenTeken == ' ') {
			JOptionPane.showMessageDialog(null, "Ongeldige invoer");
			tekenInstellen();
		} else {
			setTeken(gekozenTeken);
		}
	}

	@Override
	public String getTekengegevens() {
		return "Character: " + teken;
	}
	

}
